package com.easonji.admin.model;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

/**
 * @ClassName: Permission
 * @Description: 权限表
 * @Author: LiuJun
 * @date: 2018/07/30 14:07:16
 * @Version: 1.0
 * @Copyright: Copyright (c) 2018 - 2019
 */
@TableName("sys_permission")
public class Permission extends Model<Permission> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 应用ID
     */
    @TableField("app_id")
    private Integer appId;

    /**
     * 父权限ID
     */
    @TableField("parent_id")
    private Integer parentId;

    /**
     * 全部父权限ID
     */
    @TableField("all_parent_id")
    private String allParentId;

    /**
     * 权限名称
     */
    private String name;

    /**
     * 权限地址
     */
    private String url;

    /**
     * 是否是菜单
     */
    @TableField("is_menu")
    private Integer isMenu;

    /**
     * 图标
     */
    private String icon;

    /**
     * 排序
     */
    private Integer num;

    /**
     * 创建时间
     */
    @TableField("gmt_create")
    private Date gmtCreate;

    /**
     * 更新时间
     */
    @TableField("gmt_modified")
    private Date gmtModified;

    /**
     * 主键ID取得
     * 
     * @return 主键ID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 主键ID设定
     * 
     * @param id
     *            主键ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 应用ID取得
     * 
     * @return 应用ID
     */
    public Integer getAppId() {
        return appId;
    }

    /**
     * 应用ID设定
     * 
     * @param appId
     *            应用ID
     */
    public void setAppId(Integer appId) {
        this.appId = appId;
    }

    /**
     * 父权限ID取得
     * 
     * @return 父权限ID
     */
    public Integer getParentId() {
        return parentId;
    }

    /**
     * 父权限ID设定
     * 
     * @param parentId
     *            父权限ID
     */
    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    /**
     * 全部父权限ID取得
     * 
     * @return 全部父权限ID
     */
    public String getAllParentId() {
        return allParentId;
    }

    /**
     * 全部父权限ID设定
     * 
     * @param allParentId
     *            全部父权限ID
     */
    public void setAllParentId(String allParentId) {
        this.allParentId = allParentId;
    }

    /**
     * 权限名称取得
     * 
     * @return 权限名称
     */
    public String getName() {
        return name;
    }

    /**
     * 权限名称设定
     * 
     * @param name
     *            权限名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 权限地址取得
     * 
     * @return 权限地址
     */
    public String getUrl() {
        return url;
    }

    /**
     * 权限地址设定
     * 
     * @param url
     *            权限地址
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 是否是菜单取得
     * 
     * @return 是否是菜单
     */
    public Integer getIsMenu() {
        return isMenu;
    }

    /**
     * 是否是菜单设定
     * 
     * @param isMenu
     *            是否是菜单
     */
    public void setIsMenu(Integer isMenu) {
        this.isMenu = isMenu;
    }

    /**
     * 图标取得
     * 
     * @return 图标
     */
    public String getIcon() {
        return icon;
    }

    /**
     * 图标设定
     * 
     * @param icon
     *            图标
     */
    public void setIcon(String icon) {
        this.icon = icon;
    }

    /**
     * 排序取得
     * 
     * @return 排序
     */
    public Integer getNum() {
        return num;
    }

    /**
     * 排序设定
     * 
     * @param num
     *            排序
     */
    public void setNum(Integer num) {
        this.num = num;
    }

    /**
     * 创建时间取得
     * 
     * @return 创建时间
     */
    public Date getGmtCreate() {
        return gmtCreate;
    }

    /**
     * 创建时间设定
     * 
     * @param gmtCreate
     *            创建时间
     */
    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * 更新时间取得
     * 
     * @return 更新时间
     */
    public Date getGmtModified() {
        return gmtModified;
    }

    /**
     * 更新时间设定
     * 
     * @param gmtModified
     *            更新时间
     */
    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }
}
